/**
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * $Id$ ClientesBean.java
 * Universidad de los Andes (Bogotá - Colombia)
 * Departamento de Ingeniería de Sistemas y Computación
 * Licenciado bajo el esquema Academic Free License version 2.1
 *
 * Ejercicio: Muebles los Alpes
 * Autor: German Sotelo
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
package com.losalpes.catalogo.beans;

import com.losalpes.catalogo.excepciones.InvalidOperationException;
import com.losalpes.catalogo.servicios.IUsuarioServicesLocal;
import java.util.List;
import javax.ejb.EJB;

/**
 * Clase encargada de facilitar la visualización y el borrado de los clientes del sistema.
 * @author German Sotelo
 */

public class ClientesBean {

    /**
     * Mensaje utilizado para transmitir información importante al cliente
     */
    private String mensaje;

    /**
     * Relación con la interfaz que provee los servicios necesarios relacionados con la lista de clientes.
     */
    @EJB
    private IUsuarioServicesLocal usuarioServices;

    /**
     * Identificaciòn del cliente seleccionado.
     */
    private String id;

    /**
     * Constructor por defecto del backing bean de clientes.
     */
    public ClientesBean() {
        mensaje="";
    }

    /**
     * Retorna la lista de clientes registrados en el sistema
     * @return
     */
    public List getClientes() {
        return usuarioServices.findAll();
    }

    /**
     * Retorna el id del cliente que actualmente está seleccionado
     * @return
     */
    public String getId() {
        return id;
    }

    /**
     * Asigna el id para seleccionar un cliente
     * @param id
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * Borra del sistema al cliente seleccionado. Si no lo logra muestra el mensaje correspondiente.
     * @return
     */
    public String delete(){
        try {
            usuarioServices.delete(id);
        } catch (InvalidOperationException ex) {
            mensaje=ex.getMessage();
        }
        mensaje="";
        return null;
    }

    public String getMensaje() {
        return mensaje;
    }

    public void setMensaje(String mensaje) {
        this.mensaje = mensaje;
    }

    

}
